package innova.negocio;

import innova.dao.UsuarioDAO;
import innova.modelo.CentroFormacion;
import innova.modelo.Usuario;

import java.util.Collection;

public class GestionUsuario {

	private UsuarioDAO dao = new UsuarioDAO();
	
	public Collection<Usuario> buscarPorNombres(String nombre)
			throws Exception {
		return dao.buscarPorNombres(nombre);
	}

	public Usuario insertar(String nombresUsuario,
			String apellidoPaternoUsuario,
			String apellidoMaternoUsuario,
			String sexoUsuario,
			String tipoDocumentoUsuario,
			String numeroDocumentoUsuario,
			String correoUsuario,
			String celularUsuario,
			String passwordUsuario,
			String tipoUsuario,
			CentroFormacion centroFormacion)
					throws Exception {
		Usuario vo = new Usuario();
		vo.setNombresUsuario(nombresUsuario);
		vo.setApellidoPaternoUsuario(apellidoPaternoUsuario);
		vo.setApellidoMaternoUsuario(apellidoMaternoUsuario);
		vo.setSexoUsuario(sexoUsuario);
		vo.setTipoDocumentoUsuario(tipoDocumentoUsuario);
		vo.setNumeroDocumentoUsuario(numeroDocumentoUsuario);
		vo.setCorreoUsuario(correoUsuario);
		vo.setCelularUsuario(celularUsuario);
		vo.setPasswordUsuario(passwordUsuario);
		vo.setTipoUsuario(tipoUsuario);
		vo.setCentroFormacion(centroFormacion);

		return dao.insertar(vo);
	}

	public Usuario obtener(int idUsuario) throws Exception {
		return dao.obtener(idUsuario);
	}

	public void eliminar(int idUsuario) throws Exception {
		dao.eliminar(idUsuario);
	}

	public Usuario actualizar(int idUsuario,
			String nombresUsuario,
			String apellidoPaternoUsuario,
			String apellidoMaternoUsuario,
			String sexoUsuario,
			String tipoDocumentoUsuario,
			String numeroDocumentoUsuario,
			String correoUsuario,
			String celularUsuario,
			String passwordUsuario,
			String tipoUsuario,
			CentroFormacion centroFormacion)
					throws Exception {
		Usuario vo = new Usuario();
		vo.setIdUsuario(idUsuario);
		vo.setNombresUsuario(nombresUsuario);
		vo.setApellidoPaternoUsuario(apellidoPaternoUsuario);
		vo.setApellidoMaternoUsuario(apellidoMaternoUsuario);
		vo.setSexoUsuario(sexoUsuario);
		vo.setTipoDocumentoUsuario(tipoDocumentoUsuario);
		vo.setNumeroDocumentoUsuario(numeroDocumentoUsuario);
		vo.setCorreoUsuario(correoUsuario);
		vo.setCelularUsuario(celularUsuario);
		vo.setPasswordUsuario(passwordUsuario);
		vo.setTipoUsuario(tipoUsuario);
		vo.setCentroFormacion(centroFormacion);

		return dao.actualizar(vo);
	}

	public Collection<Usuario> listar() throws Exception {
		return dao.listar();
	}
	
	public Usuario validar(String correoUsuario, String passwordUsuario) throws Exception {
		return dao.validar(correoUsuario, passwordUsuario);
	}
	
	public Collection<Usuario> buscarPorCentroFormacion(int idCentroFormacion)
			throws Exception {
		return dao.buscarPorCentroFormacion(idCentroFormacion);
	}
	
	public Collection<Usuario> buscarPorCorreoDocumento(String correoUsuario, String numeroDocumentoUsuario)
			throws Exception {
		return dao.buscarPorCorreoDocumento(correoUsuario, numeroDocumentoUsuario);
	}
	
	public Collection<Usuario> buscarReporte(String texto,
			String sexoUsuario,
			String tipoDocumentoUsuario,
			String tipoUsuario,
			String idCentroFormacion)
			throws Exception {
		return dao.buscarReporte(texto, sexoUsuario, tipoDocumentoUsuario, tipoUsuario, idCentroFormacion);
	}
	
	public Collection<Usuario> buscarPorTipoUsuario(String tipoUsuario)
			throws Exception {
		return dao.buscarPorTipoUsuario(tipoUsuario);
	}
	
}
